package com.MartynovichIgor.KnowledgeTest.tools.testtools;

import com.MartynovichIgor.KnowledgeTest.resources.MyResources_en;
import com.MartynovichIgor.KnowledgeTest.resources.MyResources_ru;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ResourceBundle;

/**
 * Класс дл выбора языка.
 */
public class LanguageChooser {
    private BufferedReader reader;

    public LanguageChooser(){
        reader = new BufferedReader(new InputStreamReader(System.in));
    }

    /**
     * Метод для выбора языка.
     * @return  Возвращает обьект с информацией на определенном языке.
     * @throws IOException
     */
    public ResourceBundle languageChooser() throws IOException {
        ResourceBundle languageChooser;
        System.out.println("Please select a language.(English/Russian)");
        String language = reader.readLine().toLowerCase();
        String choosingLanguage = languageChoosingValidation(language);
        if (choosingLanguage.equals("english")) {
            languageChooser = new MyResources_en();
        } else {
            languageChooser = new MyResources_ru();
        }
        return languageChooser;
    }

    /**
     * Метод осуществляет валидацию при выборе языка.
     * @param language
     * @return Возвращает выбраный язык.
     * @throws IOException
     */
    private String languageChoosingValidation(String language) throws IOException {
        while ((!language.equals("english")) && (!language.equals("russian"))) {
            System.out.println("Please write English or Russian.");
            language = reader.readLine().toLowerCase();
        }
        return language;
    }
}
